﻿using System;
namespace Brainee.Search
{
  /// <summary>
  /// Provides the base interface to define a search algorithm.
  /// </summary>
  public interface ISearchAlgorithm
  {
    /// <summary>
    /// Solve the specified problem.
    /// </summary>
    /// <param name="problem">The problem to solve</param>
    /// <returns>The solution of the problem if it exists. Otherwise, PathSolution.None.</returns>
    PathSolution Solve (IProblem problem);
  }
}
